home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / tex / dvivga9.zip / GETPGTAB.H < prev    next >
Text File  |  1988-05-30  |  1KB  |  41 lines

  1. /* -*-C-*- getpgtab.h */
  2. /*-->getpgtab*/
  3. /**********************************************************************/
  4. /****************************** getpgtab ******************************/
  5. /**********************************************************************/
  6.  
  7. void
  8. getpgtab(lastpageptr)
  9. long lastpageptr;
  10.  
  11. {
  12.     register long p;
  13.     register INT16 i,k;
  14.  
  15.     (void) FSEEK (dvifp,lastpageptr,0);
  16.     p = lastpageptr;
  17.  
  18.     for (k = 0; (p != (-1)) && (k < MAXPAGE); ++k)
  19.     {
  20.         page_ptr[MAXPAGE-1-k] = p;
  21.         (void) FSEEK (dvifp,(long) p, 0);
  22.  
  23.         if ((BYTE)nosignex(dvifp,(BYTE)1) != BOP)
  24.             (void)fatal(
  25.         "getpgtab():  Invalid BOP (beginning-of-page) back chain");
  26.  
  27.         for (i = 0; i <= 9; ++i)
  28.             (void) nosignex(dvifp,(BYTE)4);   /* discard count0..count9 */
  29.         p = (long)signex(dvifp,(BYTE)4);
  30.     }
  31.     page_count = k;
  32.     if (k >= MAXPAGE)
  33.         (void)warning("getpgtab():  Page table full...rebuild driver with \
  34. larger MAXPAGE");
  35.     else    /* move pointer table to front of array */
  36.         for (k = 0; k < page_count; ++k)
  37.         page_ptr[k] = page_ptr[MAXPAGE-page_count+k];
  38. }
  39.  
  40.  
  41.